--- published: true title: Idealista3 date: 2021-02-15 layout: single author_profile: false read_time: true tags: [Reinforcement Learning, Multi-bandits] categories: [statistics] excerpt: "Reinforcement Learning , Multi-bandits " comments : true toc: true toc_sticky: true ---
Decidir dónde, cuándo y cómo invertir no esta una tarea básica. Existen diversas variables que han de investigarse y tomar en consideración, sobretodo cuando se trata de una decisión que abarca una cantidad de capital significativa.Por ello, cuanta más información de calidad (importante!) se recopile sobre la inversión, más preciso es el resultado.
Nuestra finalidad es construir diferentes modelos de regresión sobre los precios de las propiedades del portal Idealista, integrando el registro de viviendas turísticas y estancias turísticas en viviendas de la isla de Mallorca como fuente externa.
La evaluación de propiedades se ha resuelto a lo largo de los años desde varias perspecticas. Desde la aplicación del método de precios hedónicos para explicar las variables determinantes, hasta el uso de técnicas complejas como las redes neuronales.
Dado el interés en una área concreta, se cubre la zona geográfica del municipio de Palma de Mallorca dentre de un radio seleccionado.
Los datos principales de las propiedades se extraen por medio de la API de Idealista y como fuente externa, se integran datos a través del Portal OpenData del Gobierno.
El precio de las propiedades se describe por medio de diversidad de variables. Para una comprensión más detallada, se debería tomar en consideración la disponibilidad de transporte público cercano, lugares de interés público (gallerías,museos..) o infraestructuras (centros comerciales, parques...) que generalmente encarecen el precio.
En esta ocasión, nos centramos en las viviendas turísticas alrededor de las propiedades en venta. Se trata de realizar un recuento a través de las coordenadas en la distancia establecida para cada propiedad.
El portal inmobiliario Idealista proporciona una API para quienes quieran disponer de la información sobre viviendas en su base de datos.A partir de una url creada con unas premisas definidas por Idealista, cualquier usuario puede obtener la información. Para ello, proporcionan las claves de acceso, junto con la documentación en la que informan sobre las restricciones de uso. No se pueden realizar más de 100 llamadas por usuario y mes. Cada llamada devuelve un máximo de 50 observaciones. La búsqueda se ha de realizar por coordenadas geoespaciales.
A partir de las credenciales que nos han facilitado, solicitamos nuestro token. Para ello codificamos Apikey:Secreto en Base64, un sistema de numeración posicional que usa 64 como base y se aplica en la codificación. Recibido el token, solicitamos datos a la API de Idealista mediante los parámetros de búsqueda a partir de una posición (latitud y longitud) y un radio. En nuestro proyecto, se plantean varias llamadas hasta obtener un conjunto elevado de instancias.
El punto referente al número de estancias turísticas lo obtenemos en el catálogo de datos abiertos del Gobierno, publicado por el Gobierno de las Islas Baleares.
Del conjunto de datos de viviendas turísticas en Mallorca nos interesa las viviendas en la localidad de Palma de Mallorca. Todas ellas se encuentran dadas de alta, por lo tanto, tienen actividades en las distintas modalidades vacacionales.
Comenzamos comprobando la duplicidad de los datos, renombrado las columnas y descartando variables innecesarias. Sobre estas últimas, el motivo principal es por la redundancia en la información y variables que contienen información sobre las páginas de la web del portal (página en la que se encuentra la propiedad,items...).
Se sigue revisando los valores perdidos y ceros. En cuanto al tratamiento de tipos de datos, por el momento se tratarán las variables categóricas y numéricas como tal. En la medida de los algoritmos que se seleccionen, el soporte de tipo de datos varía, y por lo tanto se adecuará. Se ajustan los niveles de varias variables categóricas, a la vez que se corrigen nombres.
Por ejemplo, en el caso de la variable floor tratamos de armonizar los niveles, y establecer los niveles numéricamente.
Los siguientes casos se agruparán bajo el mismo nivel (nivel 1) :
Otro ejemplo sería la variable hasLift para la cual existe un tercer nivel que no es booleano. Para tratar de conocer a qué tipo de propiedades pertenece, puesto que en ocasiones no se indica porque se presupone que no procede y que se entiende el motivo por el que no tiene. Este tipos de propiedades son chalet y casas de campo en nuestro caso. Ambos suman 114 y 5 observaciones respectivamente. Para reducir el número de valores del tercer nivel vacío, indicaremos que los dos tipos de propiedades no tienen ascensor (False).
Para el resto de tipo de propiedades, pueden tener o no ascensor, y en estos casos se desconoce. El tratamiento a los casos que desconocemos, es convertir el valor en un string ‘unknow’
Se adjunta tabla con la descripción de las variables (renombradas)
| Variable | Descripción |
|---|---|
| id_property | Número de identificación de la propiedad |
| floor | Nivel de planta en la que se encuentra la propiedad |
| price | Precio de la propiedad en euros |
| propertyType | Tipo de propiedad |
| size | Tamaño en metros cuadros de la propiedad |
| exterior | Booleano (True o False) sobre la ubicación al exterior |
| rooms | Número de habitaciones del inmueble |
| bathrooms | Número de baños del inmueble |
| district | Distrito en el que se encuentra el inmueble |
| neighborhood | Barrio en el se encuentra el inmueble |
| latitude | Coordenada latitud (UTM) |
| longitude | Coordenada longitud (UTM) |
| distance | Distancia entre el inmueble y el centro del municipio |
| status | Condición de preservación de la propiedad |
| newDevelopment | Booleano (True o False) si la propiedad es de nueva obra. |
| hasLift | Booleano (True o False) si la propiedad tiene ascensor |
| priceByArea | Precio por área de la propiedad |
| typology | Tipo de inmueble |
Realizamos el recuento para cada propiedad de las viviendas turísticas a menos de 300 metros. El cálculo de distancias por medio de las coordenadas se implementa por medio de la fórmula del simverseno, que calcula el círculo máximo, es decir, la distancia que los separa entre dos puntos.
Existen métodos más precisos para calcular la distancia entre dos puntos, aunque por resultados ótptimos e implementanción sencilla se usa la fórmula Haversine. La simplicidad de la fórmula proviene en la asunción de que la Tierra es una esfera perfecta (lo cual no es así). Por ello, se puede incurrir en errores que mediante implementaciones más complejas se reducerían.
con:
y:
donde:
Seleccionamos las variables numéricas price y priceByArea, ya que hay valores elevados respecto a la mediana. Pueden no tratarse de errores, ya que viviendas como chalets o casas de campo pueden ascender a precios como los que encontramos de 3.7 hasta 5.9 millones, y por lo tanto el valor por metro cuadrado sea igualmente elevado. Inherente a ambos campos, es el tamaño de la propiedad, y por lo tanto otra característica numérica que acompaña a los valores altos.
Algunos modelos, tienden a lidiar mejor con los valores atípicos, y el 'ruido' puede afectar a los resultados de todos modos.Sin embargo, el impacto en los árboles de decisión es mayor.
Mediante los resultados de la función quantile_mark implementada podemos considerar para aquellos casos que tengan un precio menos a 117960 o mayor 3500000 serán atípicos. En el caso del precio por área éste límite viene marcado por 1.1794€/m2 y 12.99602€/m2. Para el tamaño de las propiedades se establece 48 y 715 metros cuadrados.
Para lidiar con valores atípicos y poder usar el modelo, marcamos los valores y de esta manera no serán usados en el entrenamiento del modelo.
A simple vista, los precios en los distritos cercanos al anillo del centro de Palma son más altos. Es evidente que las propiedades cercanas, simplemente por su ubicación ya son elevadas.En la escala de precios, las propiedades en distritos adyacentes o por su cercanía al mar o paseos marítimos siguen a las propiedades céntricas.A medida que las propiedades se alejan del radio del centro disminuyen del precio.
NumExpr defaulting to 4 threads.
En el siguiente mapa, se puede seleccionar los distritos y rango en el histograma de precios. El tratamiento de precios de propiedades atípicos en el conjunto de datos se realiza en el apartado posterior, de aquí que observemos propiedades de hasta 4.5 millones. Los distritos Sta Catalina-Son Armadan-Maritim, Ciutat Antigua y las Avenidad cuentan con mayor número de propiedades sobre el mapa. Propiedad en el rango de precios hasta los 260k dominan, pivotando precios por encima propiedades repartidas por los distintos distritos.
Una vez preparados los datos, realizamos una lectura breve
variables categóricas
Para las variables categóricas se muestra los resultados ordendados según la frecuencia, que rápidamente analiza las categorías con mayor frecuencia y qué porcentajes representan.
De la lectura general por medio de las gráficas, destacamos lo siguiente:
| Number of Variables | 9 |
|---|---|
| Number of Rows | 1000 |
| Missing Cells | 0 |
| Missing Cells (%) | 0.0% |
| Duplicate Rows | 457 |
| Duplicate Rows (%) | 45.7% |
| Total Size in Memory | 80.0 KB |
| Average Row Size in Memory | 81.9 B |
| Variable Types |
|
| Dataset has 457 (45.7%) duplicate rows | Duplicates |
|---|
variables numéricas
El precio medio de las propiedades es de 661414 euros. Detectamos valores atípicos que se alejan del precio medio (pueden deberse a propiedades como chalets) d por ejemplo 5,9 millones de euros.
El tamaño medio de las propiedades es de 155.8 metros cuadrados.Al mismo tiempo observamos propiedades de hasta 1050 metros cuadrados. Seguramente cuenten el terreno que pertenece a la propiedad.
La media de habitaciones es de 3. El 80 % de propiedades tienen un máximo de 4 habitaciones, aunque vemos propiedades con incluso 12 habitaciones. Estos datos bien puede pertencer a un caso real o a un error de registro.
El 50 % de propiedades tienen más de 6 viviendas turísticas cerca a menos de 500 metros. Esto indicador puede tener mayor incidencia sobre el precio de las propiedades.
| Number of Variables | 3 |
|---|---|
| Number of Rows | 1000 |
| Missing Cells | 0 |
| Missing Cells (%) | 0.0% |
| Duplicate Rows | 63 |
| Duplicate Rows (%) | 6.3% |
| Total Size in Memory | 23.6 KB |
| Average Row Size in Memory | 24.1 B |
| Variable Types |
|
| price is skewed | Skewed |
|---|---|
| size is skewed | Skewed |
| priceByArea is skewed | Skewed |
| Dataset has 63 (6.3%) duplicate rows | Duplicates |